The present application relates generally to trainable state machines such as robotic controllers, and more particularly to the logical structure of the interrelated variables and functions of trainable state machines.
The inventor has developed techniques for providing the state equations using derivative variables. These techniques did not address the problem of how to construct a model for a state machine. This applications uses technology described in several recently-filed patent applications in the name of the inventor. Some of these other applications are: xe2x80x9cMethod and Apparatus for Power Series Learningxe2x80x9d and xe2x80x9cMethod and Apparatus for Power Series Training Using a Change-Variable,xe2x80x9d as well as xe2x80x9cMethod and Apparatus for Training a State Machine,xe2x80x9d Ser. No. 09/507,131 filed Feb. 18, 2000. The latter application uses derivative variables. Although the latter application developed part of the technology, such as the use of multivariable power series, the present application continues with the use of Complex Impedance Networks.
Two possible models of a Complex Impedance Network include an Electrical Component Model and a Z-Transform Model. A Complex Impedance Network may be combined with a multivariable power series to create a node.
A Node comprises two major building blocks: 1) a Function Block whose output is a function of the present value of a number of inputs; and 2) a Complex Impedance Network, whose output is a function of the present value and previous values of the input and how its has varied as a function of time. An Electrical Component Model of a Complex Impedance Network comprises a number of resistors, capacitors and inductors. A Z-Transform Model of a Complex Impedance Network is simply a z-transform circuit. A model of the Function Block is a multivariable power series.
Two types of nodes may be employed to define a system: 1) a Lead-Type Node and 2) a Non-Lead-Type Node. These node types are used to build a structure of nodes and define a processing sequence with restrictions on the location of system inputs and system outputs. This structure of nodes is referred to as a State Machine Block. The present invention addresses the problem of how to construct a model for a state machine.
According to the invention, a structure is provided comprising a state machine having system inputs and system outputs, wherein the structure includes elements that can be trained so that a change in the system inputs causes a change at the system outputs after one processing cycle. The main advantage of a state machine designed according to the invention is that it is not programmed in the conventional sense but is programmed to learn the desired behavior. The state machine structure in a specific embodiment includes a computer program defining a computer model of a state machine, in which the behavior of the computer program is controlled by a simulation of the computer model. The behavior of the computer program is changed by adjustment of parameters in the computer model or parameters of the state equations controlling the behavior of the normal variables in the state machine.
The experience used to train the system can be self generated and not controlled, removing the need for an external trainer. Because the system of the present invention can be trained, training replaces conventional programming, and the programming built into the system is restricted to the ability to learn, namely to perform the simulation and to adjust the adjustable parameters. This learning algorithm is based on the performance of two tasks: 1) the calculation of derivative variables of all parameters in the system for the output variable being trained; and 2) the use of these derivative variables to change the behavior of the output variable being trained.
The performance of these tasks has been discussed in a recently previously-filed patent application of the present inventor. Herein the art is advanced by a description of how a specific component of a state machine called a Node can be created to function as a state equation in the trainable state machine. By creating this Node, the design of the state machine becomes a more ordered system.
As discussed in recently previously-filed patent applications in the name of the present inventor, a State Machine Block will typically be trained using a Behavioral Model. By using a Behavioral Model, an array of error variables can be generated by determining the differences between the output variables from the State Machine Block and the corresponding output variables from the Behavioral Model. This array of error variables, along with the associated derivative variables, will be used to train the system according to the present invention.
In order to overcome a limitation in the ability to train a layered network of Nodes a state machine that is deep enough to perform a useful task, according to the present invention, a set of differential variables is employed. A differential variable is the change of a normal variable introduced as a result of a change in the value of an input variable. (The term change-variable has been used in the past for the same concept referred to in this application as a differential variable.) According to the invention, the use of differential variable is only applicable in a state machines in which the only source of non-linearity is the multiplication of normal variables.
To permit training of a State Machine Block using differential variables, it is necessary to have derivative variables for differential variables. The techniques for processing and using these derivative variables are described hereinafter and are referred to as differential derivative variables.
According to the invention, the development of derivative variables is further expanded with the development of derivative variables of derivative variables or second order derivative variables. The second order derivative variables permit a more accurate prediction of the change in the behavior of the normal variable being trained.